1. <
language> A processor design which is not intended to be
implemented as
hardware, but which is the notional executor
of a particular
intermediate language (
abstract machine
language) used in a
compiler or
interpreter. An
abstract
machine has an
instruction set, a
register set and a model
of memory. It may provide instructions which are closer to
the language being compiled than any physical computer or it
may be used to make the language implementation easier to
port to other
platforms.
A
virtual machine is an
abstract machine for which an
interpreter exists.
Examples:
ABC,
Abstract Machine Notation,
ALF,
CAML,
F-code,
FP/M,
Hermes,
LOWL,
Christmas,
SDL,
S-K reduction machine,
SECD,
Tbl,
Tcode,
TL0,
WAM.
2. <
theory> A procedure for executing a set of instructions in
some formal language, possibly also taking in input data and
producing output. Such
abstract machines are not intended to
be constructed as
hardware but are used in thought
experiments about
computability.
Examples:
Finite State Machine,
Turing Machine.
(1995-03-13)